import request from '@/utils/request'

// 店长上架商品
export function addStoreProduct(data) {
  return request({
    url: '/store-product',
    method: 'post',
    data
  })
}

// 删除店长商品
export function deleteStoreProduct(id) {
  return request({
    url: `/store-product/${id}`,
    method: 'delete'
  })
}

// 更新店长商品
export function updateStoreProduct(id, data) {
  return request({
    url: `/store-product/${id}`,
    method: 'put',
    data
  })
}

// 根据ID查询店长商品
export function getStoreProductById(id) {
  return request({
    url: `/store-product/${id}`,
    method: 'get'
  })
}

// 分页查询当前店长的商品
export function getStoreProductPage(params) {
  return request({
    url: '/store-product/page',
    method: 'get',
    params
  })
}

// 查询店长所有上架商品（用于用户购买）
export function getOnlineProducts(storeManagerId, pageNum, pageSize, keyword) {
  const params = {
    pageNum: pageNum || 1,
    pageSize: pageSize || 10
  }
  
  if (storeManagerId) {
    params.storeManagerId = storeManagerId
  }
  
  if (keyword) {
    params.keyword = keyword
  }
  
  return request({
    url: '/store-product/online',
    method: 'get',
    params
  })
}

// 上架/下架商品
export function updateProductStatus(id, status) {
  return request({
    url: `/store-product/${id}/status`,
    method: 'put',
    params: { status }
  })
}

// 商品入库
export function stockIn(id, quantity) {
  return request({
    url: `/store-product/${id}/stock-in`,
    method: 'post',
    params: { quantity }
  })
}

// 根据供货商品ID查询店长商品库存
export function getStockBySupplyProductId(supplyProductId) {
  return request({
    url: `/store-product/stock-by-supply-product/${supplyProductId}`,
    method: 'get'
  })
}

// 更新店长商品字段信息
export function updateStoreProductFields(id, data) {
  return request({
    url: `/store-product/${id}/fields`,
    method: 'put',
    data
  })
}

// 获取店长已进货但未上架的商品列表
export function getAvailableProductsForShelf(params) {
  return request({
    url: '/store-product/available-for-shelf',
    method: 'get',
    params
  })
}

// 获取公开商品详情（用于用户查看和购买）
export function getPublicProductDetail(id) {
  return request({
    url: `/store-product/public/${id}`,
    method: 'get'
  })
}